/***********************************************************************  
 *   @package：cn.wj.base.dao，@class-name：BaseDao.java   
 *   @copyright     Copyright:   2015-2016     
 *   @creator       wenjie 
 *   @create-time   2016年1月10日   下午2:13:16   
 *   @revision      $Id: 1.0    
 ***********************************************************************/
package cn.wj.base.dao;

import java.util.List;

import cn.wj.base.util.Page;

public interface BaseDao<T,PK> {

	/**
	 * 新增方法
	 * 
	 * @param entry
	 */
	void save(T entry);

	/**
	 * 删除一个实体根据主键
	 * 
	 * @param Id
	 */
	void delete(PK Id);

	/**
	 * 删除一个实体根据列名
	 * 
	 * @param columnName
	 * @param columnValue
	 */
	void delete(String columnName, Object columnValue);

	/**
	 * 更新一个实体
	 * 
	 * @param entry
	 */
	void update(T entry);

	/**
	 * 根据Id一个实体
	 * 
	 * @param id
	 * @return
	 */
	T getById(PK id);

	/**
	 * 得到一个表的所有记录
	 * 
	 * @return
	 */
	List<T> getAll();
	/**
	 * 分页方法
	 * 
	 * @return
	 */
	List<T> getPage(int pageIndex,int pageSize);
 
}
